package com.itheima.d1_polymorphism;
/*
    什么是多态？
        多态是在继承/实现情况下的一种现象，表现为：对象多态、行为多态。

    多态的前提
        1 有继承/实现关系；
        2 存在父类引用子类对象；
        3 存在方法重写

    多态的一个注意事项
        多态是对象、行为的多态，Java中的属性(成员变量)不谈多态

    需求 : 定义学生类 , 和老师类 , 继承人类 , 演示对象多态、行为多态。
 */
public class Test1 {
    public static void main(String[] args) {
        People p1 = new Student();
        p1.run();
        People p2 = new Teacher();
        p2.run();
        show(p1);
        show(p2);
    }
    public static void show(People p){
        System.out.println("开始计时");
        p.run();
        if(p instanceof Student){
            Student s = (Student) p;
            s.study();
        }
        if(p instanceof Teacher){
            Teacher t = (Teacher) p;
            t.sing();
        }
        System.out.println("结束计时");
    }
}
